<?php

namespace Gds\ArticleBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Gds\ArticleBundle\Entity\Famille
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="Gds\ArticleBundle\Entity\FamilleRepository")
 */
class Famille
{
    /**
     * @ORM\OneToMany(targetEntity="Gds\ArticleBundle\Entity\Famille", mappedBy="famille_mere")
     */
    private $sous_familles;
    /**
     * @ORM\ManyToOne(targetEntity="Gds\ArticleBundle\Entity\Famille", inversedBy="sous_familles")
     */
    private $famille_mere;
     /**
     * @ORM\OneToMany(targetEntity="Gds\ArticleBundle\Entity\Article", mappedBy="famille")
     */
    private $articles; // Ici commentaires prend un "s", car un article a plusieurs commentaires !
    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string $libelle
     *
     * @ORM\Column(name="libelle", type="string", length=255)
     */
    private $libelle;
     /**
     * @var boolean $is_supprimer
     *
     * @ORM\Column(name="is_supprimer", type="boolean")
     */
    private $is_supprimer;
    public function __toString() {
        return (String) $this->getLibelle();
    }

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set libelle
     *
     * @param string $libelle
     * @return Famille
     */
    public function setLibelle($libelle)
    {
        $this->libelle = $libelle;
    
        return $this;
    }

    /**
     * Get libelle
     *
     * @return string 
     */
    public function getLibelle()
    {
        return $this->libelle;
    }
    /**
     * Constructor
     */
    public function __construct()
    {
        $this->articles = new \Doctrine\Common\Collections\ArrayCollection();
    }
    
    /**
     * Add articles
     *
     * @param Gds\ArticleBundle\Entity\Article $articles
     * @return Famille
     */
    public function addArticle(\Gds\ArticleBundle\Entity\Article $articles)
    {
        $this->articles[] = $articles;
    
        return $this;
    }

    /**
     * Remove articles
     *
     * @param Gds\ArticleBundle\Entity\Article $articles
     */
    public function removeArticle(\Gds\ArticleBundle\Entity\Article $articles)
    {
        $this->articles->removeElement($articles);
    }

    /**
     * Get articles
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getArticles()
    {
        return $this->articles;
    }

    /**
     * Add sous_familles
     *
     * @param \Gds\ArticleBundle\Entity\Famille $sousFamilles
     * @return Famille
     */
    public function addSousFamille(\Gds\ArticleBundle\Entity\Famille $sousFamilles)
    {
        $this->sous_familles[] = $sousFamilles;

        return $this;
    }

    /**
     * Remove sous_familles
     *
     * @param \Gds\ArticleBundle\Entity\Famille $sousFamilles
     */
    public function removeSousFamille(\Gds\ArticleBundle\Entity\Famille $sousFamilles)
    {
        $this->sous_familles->removeElement($sousFamilles);
    }

    /**
     * Get sous_familles
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getSousFamilles()
    {
        return $this->sous_familles;
    }

    /**
     * Set famille_mere
     *
     * @param \Gds\ArticleBundle\Entity\Famille $familleMere
     * @return Famille
     */
    public function setFamilleMere(\Gds\ArticleBundle\Entity\Famille $familleMere = null)
    {
        $this->famille_mere = $familleMere;

        return $this;
    }

    /**
     * Get famille_mere
     *
     * @return \Gds\ArticleBundle\Entity\Famille 
     */
    public function getFamilleMere()
    {
        return $this->famille_mere;
    }

    /**
     * Set is_supprimer
     *
     * @param boolean $isSupprimer
     * @return Famille
     */
    public function setIsSupprimer($isSupprimer)
    {
        $this->is_supprimer = $isSupprimer;

        return $this;
    }

    /**
     * Get is_supprimer
     *
     * @return boolean 
     */
    public function getIsSupprimer()
    {
        return $this->is_supprimer;
    }
}
